package collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 数组转换为List集合
 * 数组的工具类Arrays提供了一个静态方法asList，可以将一个数组转换为List集合
 * @author XingHaiYang
 * @date 2022/9/7 14:39
 */
public class ArrayToListDemo {
    public static void main(String[] args) {
        /**
         * 将数组转换为list集合的基本操作
         */
        String[] array = {"1","2","3","4","5"}; // 定义一个字符串类型的数组，并赋初始值
        System.out.println("Array:"+Arrays.toString(array)); // 将自定义的数组进行控制台输出
        List<String> list = Arrays.asList(array); // 调用Arrays工具类中的asList()方法，将数组转换为List集合
        System.out.println("List:"+list); // 将转换好的集合在控制台进行输出
        list.set(1, "6");// 对该集合的操作就是对原数组的操作，通过set()方法改变集合中对应元素的值，第一个参数为集合下标，第二个参数为集合中改变后的值
        System.out.println("List"+list); // 输出集合中每个元素
        System.out.println("Array:"+Arrays.toString(array)); // 数组元素也相应改变
        /**
         * 由于数组定长，所以该集合不持支增删元素操作，会抛出异常
         * java.lang.UnsupportedOperationException
         *           不支持的    操作      异常
         * list.add("seven");
         * System.out.println("List:"+list);
         * System.out.println("Array:"+Arrays.toString(array));
         *
         * 若希望对集合元素进行增删动作，则需要创建一个新集合并包含数组转换的集合中所有元素即可
         * 所有集合都支持一个参数为Collection的构造器，作用是创建当前集合同时包含给定集合所有元素
         */
        List list2 = new ArrayList(list);// 定义一个新集合，新集合包含给定集合中所有元素
        System.out.println("list2:"+list2);// 将新集合输出，展示的元素跟原集合一样
        list2.add("seven"); // 对新集合进行增加元素的操作
        // 可以显示出新添加的元素，不会报不支持的操作异常，所以将数组转换为集合后，想对集合进行增删操作，可以定义一个新集合，包含原集合即可
        System.out.println("list2:"+list2);
    }
}







